const sequelize = require('@/db/seq');
const { DataTypes } = require('sequelize');
const Roles = sequelize.define("blog_roles", {
  name: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true,
    comment: '角色名称，如管理员、普通用户'
  },
  code: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true,
    comment: '角色编码，如 admin, user'
  }
}, {
  freezeTableName: true,
});

Roles.associate = (models) => {
  // 用户和角色多对多关联
  Roles.belongsToMany(models.blog_user, {
    through: models.user_roles,
    foreignKey: 'role_id',
    otherKey: 'user_id',
    as: 'users'
  });
  // 角色和菜单多对多关联
  Roles.belongsToMany(models.blog_menus, {
    through: models.role_menus,
    foreignKey: 'role_id',
    otherKey: 'menu_id',
    as: 'menus'
  });
};
// Roles.sync({
//   // force: false, // 是否强制同步，true: 强制同步，false: 不强制同步
//   alter: true, // 是否自动更新表结构，true: 自动更新，false: 不自动更新
// })
module.exports = Roles;